#include<iostream>
#include<algorithm>
using namespace std;
 
int n,m;
int vn,vm;
double x[N];
double a[N][N];
double mpt[N][N];
 
void Init()
{
    vn=n;
    vm=n;
}
int Gauss()
{
    int i,j,k,col,mr;
    for(k=0,col=0;k<vn && col<vm;k++,col++){
        mr=k;
        for(i=k+1;i<vn;i++) if(fabs(a[i][col])>fabs(a[mr][col])) mr=i;
        if(fabs(a[mr][col])<EPS) return 0;
        if(k!=mr){
            for(j=col;j<vm;j++) swap(a[k][j],a[mr][j]);
            swap(x[k],x[mr]);
        }
        x[k]/=a[k][col];
        for(j=col+1;j<vm;j++) a[k][j]/=a[k][col];
        a[k][col]=1;
        for(i=0;i<vn;i++){
            if(i!=k)
            {
                x[i]-=x[k]*a[i][k];
                for(j=col+1;j<vm;j++) a[i][j]-=a[k][j]*a[i][col];
                a[i][col]=0;
            }
        }
    }
    return 1;
}
int main()
{
    while(scanf("%d%d",&n,&m)!=EOF){
        for(int i=0;i<n;i++){
            for(int j=0;j<m-1;j++){
                scanf("%lf",&a[i][j]);
            }
            scanf("%lf",&x[i]);
        }
        Init();
        Gauss();
        for(int i=0;i<n-1;i++){
            printf("%.2f ",x[i]);
        }
        printf("%.2f\n",x[n-1]);
    }
    return 0;
}
